Invalid user input occurs when a user inserts data or characters into data entry fields and the VMM is unprepared to process that data. This results in unanticipated VMM behavior, potentially leading to a compromise. Invalid input is one of the primary methods employed when attempting to compromise a VMM.
Checking the valid syntax and semantics of VMM inputs (e.g., character set, length, numerical range, and acceptable values) verifies that inputs match specified definitions for format and content. Software typically follows well-defined protocols that use structured messages (i.e., commands or queries) to communicate among guest VMs, software modules, or system components. Structured messages can contain raw or unstructured data interspersed with metadata or control information. If the VMM uses attacker-supplied inputs to construct structured messages without properly encoding such messages, then the attacker could insert malicious commands or special characters that can cause the data to be interpreted as control information or metadata. Consequently, the guest VM, module, or component that receives the tainted output will perform the wrong operations or otherwise interpret the data incorrectly. Pre-screening inputs prior to passing to interpreters prevents the content from being unintentionally interpreted as commands. Input validation helps to ensure accurate and correct inputs and prevent attacks. |